package cdu.hjx.project.care.service.impl;

import cdu.hjx.project.care.mapper.PatientsDetailMapper;
import cdu.hjx.project.care.mapper.PatientsMapper;
import cdu.hjx.project.care.service.PatientsService;
import cdu.hjx.project.pojo.Patients;
import cdu.hjx.project.pojo.PatientsDetail;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service // 添加@Service注解表示当前业务层里面每一个业务都会添加数据库事务的支持
public class PatientsServiceImpl implements PatientsService {

    @Resource
    private PatientsMapper patientsMapper;
    @Resource
    private PatientsDetailMapper patientsDetailMapper;

    @Override
    public int insertPatients(Patients patients) throws Exception {
        return patientsMapper.insertPatients(patients);
    }

    @Override
    public Patients findByIdCard(String idcard) throws Exception {
        return patientsMapper.findByIdCard(idcard);
    }

    @Override
    public boolean addPatients(Patients patients, PatientsDetail patientsDetail) throws Exception {
        Patients patients_temp = findByIdCard(patients.getPidcard());
        if (null == patients_temp) {
            // 患者信息是空的可以做添加操作
            int i = insertPatients(patients); // 基础信息保存的结果，只有成功的时候才继续给患者就诊信息添加
            if (1 == i) {
                // 患者信息添加成功，患者就诊信息也必须同步添加（但是有可能患者的就诊信息没有）
                Patients ptemp = patientsMapper.findByIdCard(patients.getPidcard());
                patientsDetail.setPid((int) ptemp.getId());
                int i1 = patientsDetailMapper.insertPatientsDetail(patientsDetail);
                return i1 > 0;
            } else {
                return false;
            }
        }
        return false; // 如果患者基础信息已经存在，但是还要做添加，那就不正确，直接返回false
    }
}
